﻿



Public Class usrSecciones

    Public Class FilaSecciones

        Private pTipoEjercicio As String
        Public Property TipoEjercicio() As String
            Get
                Return pTipoEjercicio
            End Get
            Set(ByVal value As String)
                pTipoEjercicio = value
            End Set
        End Property

        Private pTotalCorrectosPrimera As Integer
        Public Property TotalCorrectosPrimera() As Integer
            Get
                Return pTotalCorrectosPrimera
            End Get
            Set(ByVal value As Integer)
                pTotalCorrectosPrimera = value
            End Set
        End Property

        Private pTotalNoCorrectosPrimera As Integer
        Public Property TotalNoCorrectosPrimera() As Integer
            Get
                Return pTotalNoCorrectosPrimera
            End Get
            Set(ByVal value As Integer)
                pTotalNoCorrectosPrimera = value
            End Set
        End Property

        Private pPorcentajeCorrectasPrimera As Integer
        Public Property PorcentajeCorrectasPrimera() As Integer
            Get
                Return pPorcentajeCorrectasPrimera
            End Get
            Set(ByVal value As Integer)
                pPorcentajeCorrectasPrimera = value
            End Set
        End Property

        Private pTotalNuncaCorrectos As Integer
        Public Property TotalNuncaCorrectos() As Integer
            Get
                Return pTotalNuncaCorrectos
            End Get
            Set(ByVal value As Integer)
                pTotalNuncaCorrectos = value
            End Set
        End Property

        Private pEstadResultado As InterfazNegocio.EstadResultado
        Public Property EstadResultado() As InterfazNegocio.EstadResultado
            Get
                Return pEstadResultado
            End Get
            Set(ByVal value As InterfazNegocio.EstadResultado)
                pEstadResultado = value
            End Set
        End Property

    End Class

    Public Sub inicializa(ByVal EstadSecciones As Dictionary(Of String, InterfazNegocio.EstadResultado))

        'Crea la lista de la grid
        Dim l As New List(Of FilaSecciones)

        For Each estad In EstadSecciones

            Dim numEjerciciosRealizados As Integer = TotalEjerciciosRealizados(estad.Value.PrimeraRondaAcertada)
            Dim fila As New FilaSecciones

            fila.TipoEjercicio = estad.Key

            If estad.Value.PrimeraRondaAcertada.ContainsKey(1) Then
                fila.TotalCorrectosPrimera = estad.Value.PrimeraRondaAcertada(1)
            End If
            fila.TotalNoCorrectosPrimera = numEjerciciosRealizados - fila.TotalCorrectosPrimera
            If fila.TotalCorrectosPrimera > 0 Then
                fila.PorcentajeCorrectasPrimera = CInt(Math.Round(fila.TotalCorrectosPrimera / (fila.TotalNoCorrectosPrimera + fila.TotalCorrectosPrimera), 2) * 100)
            End If
            If estad.Value.PrimeraRondaAcertada.ContainsKey(0) Then
                fila.TotalNuncaCorrectos = estad.Value.PrimeraRondaAcertada(0)
            End If

            fila.EstadResultado = estad.Value

            l.Add(fila)

        Next

        Me.DataGrid1.ItemsSource = l

    End Sub

    Private Function TotalEjerciciosRealizados(ByVal PrimeraRondaAcertada As Dictionary(Of Integer, Integer)) As Integer

        Dim total As Integer

        For Each fila In PrimeraRondaAcertada
            total = total + fila.Value
        Next

        Return total

    End Function

    Private Sub DataGrid1_SelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles DataGrid1.SelectionChanged

        Dim fila As FilaSecciones
        fila = CType(Me.DataGrid1.SelectedItem, FilaSecciones)

        Dim l1 As DataVisualization.Charting.PieSeries
        l1 = CType(Me.mcChart1.Series(0), DataVisualization.Charting.PieSeries)
        l1.ItemsSource = fila.EstadResultado.PorcentajeAciertos

        Dim l2 As DataVisualization.Charting.PieSeries
        l2 = CType(Me.mcChart2.Series(0), DataVisualization.Charting.PieSeries)
        l2.ItemsSource = fila.EstadResultado.PrimeraRondaAcertada

    End Sub

End Class
